📘 GitLab CI · 嵌入式落地
30 章
🎯 风格 · 明快活力
01
嵌入式CI/CD概述
为什么嵌入式需要CI/CD?传统痛点,GitLab CI能解决什么?
02
GitLab Runner部署
Runner类型选择 · Linux/Mac/Windows安装 · 注册Runner
03
.gitlab-ci.yml基础
YAML语法入门 · Job/Stage/Script · 第一个Pipeline
04
Stage与Job设计
顺序/并行执行 · needs依赖 · allow_failure处理
05
嵌入式交叉编译环境搭建
Docker镜像制作 · arm-none-eabi-gcc · Docker Runner交叉编译
06
代码静态检查
Cppcheck/Clang-Tidy/PC-Lint · 规则设置 · 失败阻断
07
单元测试框架集成
Ceedling/Unity/CMock · 运行单元测试 · JUnit报告
08
硬件在环测试(HIL)
QEMU模拟 · Pipeline启动模拟器 · 测试结果回传
09
固件构建与产物管理
Hex/Bin/ELF · Artifacts保存 · 过期策略
10
版本号自动管理
Git Tag/Commit SHA · 写入固件头文件
11
固件签名与安全
MCUboot集成 · 自动签名 · 签名完整性验证
12
OTA升级包生成
差分升级包(SWUpdate) · 元数据 · 上传制品库
13
多板卡/多平台构建
Matrix策略并行构建 · 变量控制板卡配置
14
环境变量与密钥管理
CI/CD Variables · Masked变量 · License保护
15
Pipeline缓存优化
缓存工具链/依赖库 · Cache加速 · 清理策略
16
代码覆盖率分析
gcov/lcov · 覆盖率报告 · 门限80% · 失败Pipeline
17
文档自动生成
Doxygen API · Sphinx用户手册 · GitLab Pages发布
18
固件大小监控
解析固件大小 · 基线比较 · 阈值告警 · 趋势图
19
回归测试自动化
每晚定时触发 · Schedule Pipelines · 汇总通知
20
多分支策略
Develop/Master/Feature差异 · MR预合并 · 保护分支
21
Pipeline可视化与监控
内置Pipeline图 · Grafana监控Runner · SLA设置
22
与Jira/Redmine集成
Commit关联Issue · 自动更新状态 · MR需求显示
23
与SonarQube集成
SonarQube扫描 · 质量门禁 · MR反馈 · Quality Gate
24
固件发布与部署
GitLab Releases · 上传Nexus/Artifactory · OTA推送
25
CI/CD安全最佳实践
Runner权限限制 · Vault管理密钥 · Trivy扫描
26
本地调试Pipeline
gitlab-runner exec · act模拟 · YAML调试
27
Pipeline模板化
自定义模板库 · include复用 · 参数化模板
28
与IDE集成
VS Code Pipeline状态 · Web IDE编辑 · 本地触发
29
大规模团队协作
Parent-Child Pipeline · Monorepo/Multi-Repo · 权限模型
30
案例实战:STM32完整CI/CD
从零搭建 · 编译/测试/打包/发布全流程